#ifndef _MATRIX_H_
#define _MATRIX_H_

#include "Vector.h"

class Matrix44
{
public:
	float field[16];
	Matrix44();
	Matrix44(const Matrix44 &matrix);	
	Matrix44& Transpose(void);
	static Matrix44 I();	
	static Matrix44 RotateX(float angle);
	static Matrix44 RotateY(float angle);
	static Matrix44 RotateZ(float angle);
	static Matrix44 Translate(Vector3 &v);
	static Matrix44 Scale(Vector3 &v);	
	Matrix44& operator = (Matrix44 &matrix);
};

Matrix44 operator * (Matrix44 &m1, Matrix44 &m2);
Vector3 operator * (Matrix44 &m, Vector3 &v);

#endif